package controlsystem;

import java.util.List;

import com.googlecode.objectify.Key;
import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyService;

/**
 * Manager voor het behandelen van course-objecten
 * 
 * @author Incalza Dario
 *
 */
public class CourseManager {
	
	/**
	 * Voeg een vak aan de database toe , of update een vak.
	 * @param c
	 */
	public static void add(CourseDescription c){
		Objectify ofy = ObjectifyService.begin();
		ofy.put(c);
	}
	/**
	 * Haal alle vakken op in de database.
	 * @return java.util.List van vakken
	 */
	public static List<CourseDescription> findAll(){
		Objectify ofy = ObjectifyService.begin();
		List<CourseDescription> courses = ofy.query(CourseDescription.class).list();
		
		return courses;
	}
	/**
	 * Verwijder een vak uit de database
	 * 
	 * @param objectId van het vak
	 */
	public static void delete(Long id){
		
		Objectify ofy = ObjectifyService.begin();
		ofy.delete(new Key<CourseDescription>(CourseDescription.class,id));
	}
	
	public static CourseDescription findByName(String name){
		Objectify ofy = ObjectifyService.begin();
		CourseDescription c = ofy.query(CourseDescription.class).filter("name", name.trim()).get();
		if(c==null){
			return null;
		}
		else{
			return c;
		}
	}
	
	public static Course createCourseObj(Long id){
		Objectify ofy = ObjectifyService.begin();
		CourseDescription cd = ofy.get(new Key<CourseDescription>(CourseDescription.class,id));
		Course c = new Course(cd.getName(),cd.getProf(),cd.getDescription(),cd.getStudyPoints());
		return c;
		
	}
	
	
}
